package br.com.sms.facade;

import java.util.Date;
import java.util.List;

import br.com.sms.dao.MensagemDAO;
import br.com.sms.dominio.Cliente;
import br.com.sms.dominio.Mensagem;
import br.com.sms.excecao.SmsException;
import br.com.sms.util.MensagensErro;

public class MensagemFacade {
	
	private MensagemDAO mensagemDAO;
	
	public MensagemFacade(){
		this.mensagemDAO = new MensagemDAO();
	}
	
	public void salvarMensagem(Mensagem mensagem){
		mensagem.setDataCriacao(new Date());
		this.mensagemDAO.salvarMensagem(mensagem);
	}
	
	public Mensagem recuperarMensagem(Mensagem mensagem){
		return this.mensagemDAO.recuperarMensagem(mensagem);
	}
	
	public List<Mensagem> recuperarMensagem(String titulo, Cliente cliente){
		return this.mensagemDAO.recuperarMensagem(titulo, cliente);
	}
	
	public Mensagem carregarMensagem(Mensagem mensagem){
		return this.mensagemDAO.recuperarMensagem(mensagem);
	}
	
	public void removerMensagem(Mensagem mensagem){
		this.mensagemDAO.removerMensagem(mensagem);
	}
	
	public List<Mensagem> recuperarTodasMensagens(Cliente cliente){
		return this.mensagemDAO.recuperarTodasMensagens(cliente);
	}
	
	public void validarCampos(Mensagem mensagem) throws SmsException{
		
		if(mensagem.getTituloMensagem() == null || mensagem.getTituloMensagem().trim().length() == 0){
			throw new SmsException(MensagensErro.CAMPO_OBRIGATORIO.replace("?", "Título"));
		}
		if(mensagem.getDescricaoMenssagem() == null || mensagem.getDescricaoMenssagem().trim().length() == 0 || mensagem.getDescricaoMenssagem().equalsIgnoreCase("<br>")){
			throw new SmsException(MensagensErro.CAMPO_OBRIGATORIO.replace("?", "Mensagem"));
		}
	}
}
